package com.xd.core.product.entity;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Product对象", description="")

public class Product implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "产品id")
    @TableId(value = "product_id", type = IdType.AUTO)
    private Integer productId;

    @ApiModelProperty(value = "产品logo")
    private String productLogo;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "产品类型(0--消费信贷、1--车抵贷、2--房抵贷、3--经营贷、4--保单贷)")
    private String type;

    @ApiModelProperty(value = "产品类型(0--消费信贷、1--车抵贷、2--房抵贷、3--经营贷、4--保单贷)")
    @TableField(exist = false)
    private String typeRemark;

    @ApiModelProperty(value = "最低贷款额度")
    private BigDecimal minAmount;

    @ApiModelProperty(value = "最高贷款额度")
    private BigDecimal maxAmount;

    @ApiModelProperty(value = "最低年化利率")
    private BigDecimal rateMin;

    @ApiModelProperty(value = "最高年化利率")
    private BigDecimal rateMax;

    @ApiModelProperty(value = "贷款期限最小值(按天)")
    private Integer loanTermMinDay;

    @ApiModelProperty(value = "贷款期限最大值(按天)")
    private Integer loanTermMaxDay;

    @ApiModelProperty(value = "贷款期限最小值(按月)")
    private Integer loanTermMinMonth;

    @ApiModelProperty(value = "贷款期限最大值(按月)")
    private Integer loanTermMaxMonth;

    @ApiModelProperty(value = "贷款期限最小值(按周)")
    private Integer loanTermMinWeek;

    @ApiModelProperty(value = "贷款期限最大值(按周)")
    private Integer loanTermMaxWeek;

    @ApiModelProperty(value = "城市坐标")
    private String citySqes;

    @ApiModelProperty(value = "申请材料")
    private String applicationMaterials;

    @ApiModelProperty(value = "申请条件")
    @TableField("`condition`")
    private String condition;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "启用状态")
    @TableField("`status`")
    private String status;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "产品方")
    @TableField(value = "create_by")
    private String createByProduct;

    @ApiModelProperty(value = "还款方式")
    private String repayment;

    @ApiModelProperty(value = "还款方式")
    @TableField(exist = false)
    private String repaymentRemark;

}
